package tp.algo2.futbol

import java.util.List
import java.util.ArrayList

class CalificarPartido implements Icommand{
	@Property List<String> notas
	
	
	new(){
		notas = new ArrayList
		}

	override ejecutarAccion(Object algo,Jugador jugadorQuePuntua) {
		var jugadores = jugadorQuePuntua.partidoJugadoAelegir.jugadores
		jugadores.remove(jugadorQuePuntua)
		jugadores.forEach[j | this.administradorEvaluar(notaRandom, j, jugadorQuePuntua)] //primero le mando la nota al administrador
			}		
	
	def administradorEvaluar(String puntaje, Jugador jugPuntuado, Jugador jugPuntuador){ // si el administrador la acepta, se le agrega, sino se le pone como rechazada =D
		if(this.administradorAcepta(puntaje)){
			jugPuntuado.puntuado(puntaje)
			jugPuntuador.criticar(jugPuntuado)
		} 
		else{
			jugPuntuador.puntajeRechazado(puntaje)
		}
		
	}
	
	def boolean administradorAcepta(String puntaje){
		(puntaje == '7') || (puntaje =='8') || (puntaje == '9') || (puntaje == '10')
	}
	
	def agregarTipoPuntajes(String string){ 
		notas.add(string)
	}
	def BorrartipoPuntajes(String string){
		notas.clear
	}
	def notaRandom(){   
		notas.get(0)	
	}
	
	def getCritica(Jugador jugador) {
   		jugador.toString()
	}
	}